# -*- coding: utf-8 -*-
import numpy as np

#用列表或元组创建
a = np.array([[1,2,3],[4,5,6]])
b = np.array([1,2],dtype=complex)

#类似内置函数range
c = np.arange(24).reshape(2,3,4)

#等差,等比数组
d = np.linspace(0,1,10,endpoint=False)
print np.logspace(0,4,3,base=2)

#创建特殊数组
print np.zeros((2,3))
print np.zeros_like(a) #创建维数与a相同的0数组
print np.ones((2,3),dtype=np.int16) #全1
print np.empty((2,3)) #空数组,值为随机
print np.eye(3) #单位阵

#从字符串,函数,文件等创建
s ='abcdef'
print np.fromstring(s,dtype=np.int8)
print np.fromfunction(lambda i,j:(i+1)*(j+1), (9,9))
#fromfile从二进制文件中创建,tofile写入文件

#从文件创建
np.savetxt('123.txt',a) #存为文本
e = np.loadtxt('123.txt')

#文件操作还有savez,save,load
np.save('c.npy', c) #存为二进制,后缀不可变
c = np.load('c.npy')
print c

np.savez('c.npz', c,d) #存储多个数组
d = np.load('c.npz')
print d['arr_0'], d['arr_1']

c.tofile('c.bin')
c = np.fromfile('c.bin',dtype=np.int32) #读出来是一维的
print c

#创建随机数组
print np.random.random((2,3))

#结构体数组
persontype = np.dtype({'names':['name','age','weight'], 'formats':['S30','i','f']}, align=True)
f = np.array([('zhang',32,75.5), ('wang',24,65.2)], dtype=persontype)
print f
print f['name']
print f[0]['age']
